using System;
using Microsoft.SPOT;

namespace MLRobotic.IA.Goals
{
    public abstract class Goal
    {
        public GoalSate State { get; protected set; }
        public bool Blind { get; protected set; }
        public bool Timeout { get; protected set; }
        public abstract void Process();

        public void Reset()
        {
            State = GoalSate.Todo;
        }

        protected Goal(bool blind = false)
        {
            State = GoalSate.Todo;
            Blind = blind;
        }

        protected Com Com { get { return Com.Instance; } }
        protected Robot Robot { get { return Robot.Instance; } }
    }
}
